Optical Image Stabilization Movement to Create a Super-Resolution Image of a Scene

ABSTRACT

The present disclosure describes systems and techniques directed to optical image stabilization movement to create a super-resolution image of a scene. The systems and techniques include a user device (102) introducing (502), through an optical image stabilization system (114), movement to one or more components of a camera system (112) of the user device (102). The user device (102) then captures (504) respective and multiple frames (306) of an image of a scene, where the respective and multiple frames (306) of the image of the scene have respective, sub-pixel offsets of the image of the scene across the multiple frames (306) as a result of the introduced movement to the one or more components of the camera system (112). The user device (102) performs (506), based on the respective, sub-pixel offsets of the image of the scene across the respective, multiple frames (306), super-resolution computations and creates (508) the super-resolution image of the scene based on the super-resolution computations.

BACKGROUND

Camera technology associated with a user device today, such as a digital lens single-reflex (DLSR) camera or a smartphone having an image sensor, has advanced on several fronts. As one example, the user device may include an Optical Image Stabilization (OIS) camera module that combines a camera system having the image sensor with an OIS system to compensate for motion of the user device while the user device is capturing images. As another example, the user device may include super-resolution capabilities that create a super-resolution image from multiple, low-resolution images of a scene, wherein the multiple, low-resolution images of the scene are multiple images captured using native resolution capabilities of the camera system and the super-resolution image is of a resolution that is higher than the native resolution capabilities of the camera system.

In some instances, use of the OIS system is incompatible with, or in conflict with, the super-resolution capabilities of the user device. For example, if the multiple, low-resolution images of a scene need to reflect position offsets (or differences in pixel positions) of the images of the scene for super-resolution algorithms to function, stability introduced by the OIS system during the capture of the multiple, low-resolution images of the scene may prevent the needed position offsets. As another example, if the user device is in a stable state with no movement (and the OIS system is not functioning or compensating for motion during the capture of the multiple-low resolution images), the multiple low-resolution images may be identical and not possess the needed position offsets.

Furthermore, the user device may capture the multiple images of the scene in a variety of modes, including a burst sequence mode that occurs before and after the press of a shutter button, as well as during a zero shutter-lag mode that occurs nearly simultaneously with the press of the shutter button. The aforementioned incompatibilities between the OIS system and the super-resolution capabilities of the user device compound themselves further in such instances.

SUMMARY

The present disclosure describes systems and techniques directed to optical image stabilization movement to create a super-resolution image of a scene. The systems and techniques include a user device using an optical image stabilization system to introduce movement to one or more components of a camera system of the user device. The user device then captures respective and multiple frames of an image of a scene, where the respective and multiple frames of the image of the scene have respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system. The user device performs, based on the respective, sub-pixel offsets of the image of the scene across the respective, multiple frames, super-resolution computations and creates the super-resolution image of the scene based on the super-resolution computations.

The system and techniques can therefore create super-resolution images without affecting Optical Image Stabilization (OIS) system performance. Furthermore, the systems and techniques can stabilize the one or more components of the camera system without distracting the user, work with “zero shutter-lag” modes, and don't require waiting for a user to press the shutter movement, minimizing input lag and latencies that may be detrimental to obtaining high-quality images and to the user's experience.

In some aspects, a method used to create a super-resolution image of a scene is described. The method includes a user device introducing movement to one or more components of a camera system of the user device. As part of the method, the user device captures respective and multiple frames of an image of a scene, where the respective and multiple frames of the image of the scene have respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system. The method continues, where, based on the respective, sub-pixel offsets of the image of the scene across the respective, multiple frames, the user device performs super-resolution computations and creates the super-resolution image of the scene based on the super-resolution computations.

In yet other aspects, a user device is described. The user device includes a camera system that has image sensors and an OIS system, processors, and a display. The user device also includes a computer-readable storage media storing instructions of an optical image-stabilization system drive manager application and a super-resolution manager application that, when executed by the processors, perform complementary functions that direct the user device to perform a series of operations.

The series of operations includes receiving, by the one or more processors, a command that directs the user device to capture an image of a scene. The series of operations also includes introducing movement to one or more components of the camera system during the capture of the image of the scene, wherein the introduced movement results in the capture of respective and multiple frames of the image of the scene that have respective, sub-pixel offsets of the image across the multiple frames and performing, by the one or more processors and based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations. The series of operations further includes creating, by the one or more processors based on the super-resolution computations, a super-resolution image of the scene and rendering, by the display, the super-resolution image of the scene.

The details of one or more implementations are set forth in the accompanying drawings and the following description. Other features and advantages will be apparent from the description and drawings, and from the claims. This summary is provided to introduce subject matter that is further described in the Detailed Description and Drawings. Accordingly, a reader should not consider the summary to describe essential features nor limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

This present disclosure describes details of one or more aspects associated with optical image stabilization movement to create a super-resolution image of a scene.

FIG. 1 illustrates an example operating environment in which various aspects of optical image stabilization movement to create a super-resolution image scene are performed.

FIG. 2 illustrates example aspects of movement introduced by an OIS system.

FIG. 3 illustrates example aspects associated with detecting a motion condition and introducing movement to an OIS system.

FIG. 4 illustrates example aspects of using multiple frames having sub-pixel offsets to perform super-resolution computations and create a super-resolution image of a scene.

FIG. 5 illustrates an example method used for optical image stabilization movement to create a super-resolution image of a scene.

DETAILED DESCRIPTION

The present disclosure describes systems and techniques directed to optical image stabilization movement to create a super-resolution image of a scene.

While features and concepts of the described systems and techniques for optical image stabilization movement to create a super-resolution image of a scene can be implemented in any number of different environments, systems, devices, and/or various configurations, aspects are described in the context of the following example devices, systems, and configurations.

Example Operating Environment

FIG. 1 illustrates an example operating environment 100 in which various aspects of optical image stabilization movement to create a super-resolution image of a scene are performed. As illustrated, a user device 102 is fixed to a tripod 104 and rendering a super-resolution image 106 of a scene that it is capturing. Although illustrated as a smartphone, the user device 102 may be another type of device that has image-capture capabilities, such as a DLSR camera or a tablet. The fixing of the user device 102 to the tripod 104 constrains the user device 102 such that the user device 102 is stationary with no motion.

The user device 102 includes a combination of one or more motion sensor(s) 108 (e.g., a gyroscope, an accelerometer) that detect a motion condition of the user device 102. In some instances, such as when the user device 102 is fixed to the tripod 104, the detected motion condition may be a static motion condition (i.e., the user device 102 not moving). In other instances, such as when the user device 102 is removed from the tripod 104, the detected motion condition may be a dynamic motion condition (i.e., any motion condition that is not a static motion condition).

The user device also includes an Optical Image Stabilization (OIS) camera module 110, which includes a camera system 112 and an OIS system 114. The camera system 112 may include multiple components such as a lens, an aperture, and one or more image sensors (e.g., 40 megapixel (MP), 32 MP, 16 MP, 8 MP). The image sensor(s) may include a complementary metal-oxide semiconductor (CMOS) image sensor or a charge-coupled device (CCD) image sensor. In some instances, the image sensor(s) may include a color filter array (CFA) that overlays pixels of the image sensor and limits intensities, as associated with color wavelengths, of light recorded through the pixels. An example of such a CFA is a Bayer CFA, which filters light according to a red wavelength, a blue wavelength, and a green wavelength.

The OIS system 114, in general, provides mechanics to modify physical positions or orientations of one or more components of the camera system 112. The OIS system 114 may include micro-scale motors and magnetic-induction positioning mechanisms that can change an in-plane position, an out-of-plane position, a pitch, a yaw, or a tilt of one or more components of the camera system 112. The in-plane position may be a position that lies within a plane defined by two axes, while the out-of-plane position may be another position that lies outside the plane defined by the two axes.

The user device 102 also includes a combination of one or more processor(s) 116. The processor 116 may be a single core processor or a multiple core processor composed of a variety of materials, such as silicon, polysilicon, high-K dielectric, copper, and so on. In an instance of multiples of the processor 116 (e.g., a combination of more than one processor), the multiples of processor 116 may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), or an image processing unit (IPU). Furthermore, and in such an instance, the multiples of the processor 116 may perform two or more computing operations using pipeline-processing.

The user device 102 also includes computer-readable storage media (CRM) 118 that includes executable instructions in the form of an OIS drive manager 120 and a super-resolution manager 122. The CRM 118 described herein excludes propagating signals. The CRM 118 may include any suitable memory or storage device such as random-access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), non-volatile RAM (NVRAM), read-only memory (ROM), or Flash memory useable to store the OIS drive manager 120 and the super-resolution manager 122.

In some instances, the OIS drive manager 120 and the super-resolution manager 122 may be executed by the processor 116 to cause the user device 102 to perform complementary functions that are effective to produce OIS movement (e.g., a physical movement or change to positions of one or more elements of the camera system 112), capture multiple frames of an image of a scene with sub-pixel offsets, and compute the super-resolution image (106) of a scene. In some instances, the OIS movement may correspond to changes in position to the camera system 112 that would manifest through a natural, handheld motion of a user operating the user device (e.g., a hand tremor or other natural biomechanics of the user).

The code or instructions of the OIS drive manager 120 may be executed, using the processor 116, to direct the OIS system 114 to perform the OIS movement. In some instances, the OIS movement may be an unsynchronized movement (e.g., movement within a predetermined range of positional displacements and having no temporal synchronization). Such an unsynchronized movement can be applicable to a static motion condition.

In other instances, the OIS movement may be a synchronized movement (e.g., movement corresponding to a range of positional displacements that are dependent upon, and temporally synchronized with, detected motions of the user device 102). Such a synchronized movement can be applicable to a dynamic motion condition and superimposed onto another OIS movement introduced to the OIS system 114.

The code or instructions of the super-resolution manager 122, when executed by the processor 116, may direct the user device 102 to perform multiple operations that are complementary to the operations performed under the direction of the OIS drive manager 120. Such operations may include directing the camera system 112 to capture, in a burst sequence, multiple frames of an image of a scene, perform super-resolution computations, and render, using a display 124 of the user device, the super-resolution image 106 of the scene.

Due to the OIS movement (e.g., the movement introduced to the camera system 112 by the OIS system 114 under the direction of the OIS drive manager 120), the camera system 112 may capture multiple variations 126, 128, and 130 of the image of the scene, where the multiple variations 126-130 correspond to multiple frames of the image of the scene that have respective, sub-pixel offsets of the image across the multiple frames.

During the OIS movement, the OIS drive manager 120 may compute coverage scores, either analytically or numerically through uniform sampling of the multiple frames of the image of the scene. The computed coverage scores may, in some instances, cause additional or supplemental OIS movements to define image content of the captured, multiple variations 126-130. This movement may ensure full coverage of the image of the scene and produce a higher quality image.

The super-resolution computations may include, for example, Gaussian radial basis function (RBF) computations combined with robustness model computations to create the super-resolution image 106 of the scene. The super-resolution computations use the variations 126-130 of the image of the scene (e.g., the multiple frames of the image of the scene that have respective, sub-pixel offsets of the image across the multiple frames) to create the super-resolution image 106 of the scene.

FIG. 2 illustrates example aspects 200 of movement introduced by an OIS system. Aspects 200 include the camera system 112 and the OIS system 114 of the user device 102 of FIG. 1 .

As illustrated, the OIS system 114 may introduce movement to the camera system 112. An “in-plane” movement may be a movement contained within a plane defined by the x-axis 202 and the y-axis 204. The plane defined by the x-axis 202 and the y-axis 204, corresponds to (e.g., is parallel to) another plane having the super-resolution image 106 of the scene. An “out-of-plane” movement may be a movement that is outside the plane defined by the x-axis 202 and the y-axis 204 and may be a movement along the z-axis 206 or another movement that includes a pitch, yaw, or roll.

The movement introduced by the OIS system 114 may be triggered by one or more factors. For example, the movement introduced to the OIS system 114 may in response to the user device 102 entering a viewfinder mode, in response to the user device 102 receiving a capture command, or in response to the user device 102 detecting a motion condition through the motion sensors 108. The movement introduced by the OIS system 114 may also be triggered through a combination of one or more of such factors.

FIG. 3 illustrates example aspects 300 associated with detecting a motion condition and introducing movement to an OIS system. The example aspects 300 may be performed by the user device 102 of FIG. 1 and the OIS camera module 110 of FIG. 2 . The OIS drive manager 120 (being executed by the processor 116) may introduce movement to camera system 112 through the OIS system 114. In some instances, the movement introduced to the camera system 112 through the OIS system 114 may simply stabilize the camera system 112 during the capture of an image of a scene, while in other instances the movement introduced to the camera system 112 through the OIS system 114 may introduce sub-pixel offsets to multiple images of a scene during the capture of the multiple images of the scene. In yet other instances, the movement introduced to the camera system 112 through the OIS system 114 may be a combination of movements that stabilize capture of some frames of the image the scene (e.g., no sub-pixel offsets for clarity purposes) and also introduce offsets during capturing of other frames of the image of the scene (e.g., preserve sub-pixel offsets for super-resolution purposes).

The example aspects 300 include detection of a motion condition 302, an introduction of movement 304, and a capturing of multiple frames 306 having sub-pixel offsets (frames 308-312 correspond to variations 126-128 of FIG. 1 ) The multiple frames 306 serve as a basis for computing and forming the super-resolution image 106. The user device 102 may capture the multiple frames 306, using a resolution that is lower than another resolution of the super-resolution image 106 of the scene, during a burst sequence.

Detection of the motion condition 302 may include detecting a static motion condition 314 or a dynamic motion condition 318. Introduction of the movement 304 to the camera system 112 may include the OIS drive manager 120 introducing, during the burst sequence, an unsynchronized OIS movement 316 or a synchronized OIS movement 320.

In the instance of the synchronized OIS movement 320, the OIS system 114 may introduce a first movement that is intended to stabilize the camera system 112 from the detected dynamic motion condition 318 (e.g., stabilize the camera system 112 to capture frames of an image of a scene with clarity and without sub-pixel offsets). The synchronized movement 320 may be a second movement that is synchronized with, and superimposed onto, the first movement (e.g., a movement that is opposite movement associated with the detected dynamic motion condition 318) with the intent of generating or preserving sub-pixel offsets across the frames of the image of the scene. Depending on the magnitude of the first movement, the superimposing of the second movement may be constructive or destructive in nature (e.g., “add to” or “subtract from” the first movement). Furthermore, some portions of the second movement may be greater than a pixel while other portions of the second movement may be less than a pixel.

The burst sequence may include capturing the multiple frames 306 at a set time interval that may range, for example, from one millisecond to three milliseconds, one millisecond to five milliseconds, or one-half millisecond to ten milliseconds. Furthermore, and in some instances, the time interval of the burst sequence may be variable based on a motion of the user device (e.g., a time interval may be “shorter” during a high-velocity motion of the user device 102 than another time interval during a low-velocity motion of the user device 102 to keep offsets at less than one pixel).

The introduction of the movement 304 during the burst sequence effectuates the user device 102 capturing the multiple frames 306 such that the multiple frames 306 have respective, relative sub-pixel offsets. As illustrated the image of frame 310 is respectively offset, relative to the image of frame 308, one half-pixel horizontally and one half-pixel vertically. Furthermore, and as illustrated, the image of frame 312 is respectively offset, relative to the image of frame 308, one-quarter pixel horizontally. Respective, relative sub-pixel offsets can include different magnitudes and combinations of sub-pixel offsets (e.g., one sub-pixel offset associated with one frame might be one-quarter pixel horizontally and three-quarters of a pixel vertically, while another sub-pixel offset that is associated with another frame might be zero pixels horizontally and one-half of a pixel vertically). In general, the techniques and systems described by this present disclosure can accommodate sub-pixel offsets that are more random than the illustrations and descriptions of frames 308-312, including sub-pixel offsets that are non-uniform.

FIG. 4 illustrates example aspects 400 of using multiple frames 306 having sub-pixel offsets, as introduced by OIS movement, to perform super-resolution computations and create a super-resolution image of a scene. The example aspects 400 may use elements of FIGS. 1-3 , wherein performing the super-resolution computations are performed by the user device 102 of FIG. 1 , the sub-pixel offsets are a result of the OIS movement of FIG. 2 , and the multiple frames having the sub-pixel offsets are the multiple frames 306 of FIG. 3 .

As illustrated in FIG. 4 , the multiple frames 306 are input to super-resolution computations 402 performed by the user device 102. Algorithms that support the super-resolution computations 402 may reside in the super-resolution manager 122 of the user device 102. In some instances, the user device 102 (e.g., multiples of the processor 116) may perform portions of the super-resolution computations 402 using pipeline-processing. In general, the super-resolution computations 402 may use a variety of algorithms and techniques.

A first example of the super-resolution computations 402 includes Gaussian radial basis function (RBF) kernel computations. To perform the Gaussian RBF kernel computations, the user device 102 filters pixel signals from each frame of the multiple frames 306 to generate respective color-specific image planes corresponding to color channels. The user device 102 then aligns the respective color-specific image planes to a selected reference frame.

Continuing with the first example of the super-resolution computations 402, the Gaussian RBF kernel computations can include the user device 102 analyzing local gradient structure tensors to compute a covariance matrix. Computing the covariance matrix may rely on the following mathematical relationship:

$\begin{matrix} {\Omega = {\begin{bmatrix} e_{1} & e_{2} \end{bmatrix}\begin{bmatrix} k_{1} & 0 \\ 0 & k_{2} \end{bmatrix}}} & (1) \end{matrix}$

In mathematical relationship (1), Ω represents a kernel covariance matrix, e₁ and e₂ represent orthogonal direction vectors and two associated eigenvalues λ₁ and λ₂, and k₁ and k₂ control a desired kernel variance.

Computing the local gradient structure tensors may rely on the following mathematical relationship:

$\begin{matrix} {{\overset{\hat{}}{}\Omega} = \begin{bmatrix} I_{x}^{2} & {I_{x}I_{y}} \\ {I_{x}I_{y}} & I_{y}^{2} \end{bmatrix}} & (2) \end{matrix}$

In mathematical relationship (2), I_(x) and I_(y) represent local image gradient in horizontal and vertical directions, respectively.

Also, as part of the first example of the super-resolution computations 402, the user device 102 may compute a robustness model using a statistical neighborhood model that includes color mean and spatial standard deviation computations. The robustness model computations, in some instances, may include denoising computations to compensate for color differences.

The super-resolution image computations 402 are effective to estimate, for each of the multiple frames 306 (e.g., for frame 308, 310, and 312), the contribution of pixels to color channels associated with respective color planes

Continuing with the first example of the super-resolution computations 402, color planes may be accumulated using the following mathematical relationship for normalization computations:

$\begin{matrix} {{C\left( {x,y} \right)} = \frac{\sum_{n}{\sum_{i}{c_{n,i} \cdot w_{n,i} \cdot {\overset{\hat{}}{R}}_{n}}}}{\sum_{n}{\sum_{i}{w_{n,i} \cdot {\overset{\hat{}}{R}}_{n}}}}} & (3) \end{matrix}$

In mathematical relationship (3), x and y represent pixel coordinates, the sum Σ_(n) operates over (or is a sum of) contributing frames, the sum Σ_(i) is a sum of samples within a local neighborhood, c_(n,i) represents a value of a Bayer pixel at a given frame n and sample i, w_(n,i) represents a local sample weight, and {circumflex over (R)}_(n) represents a local robustness. The accumulated color planes may be combined to create the super-resolution image 106 of the scene.

A second example of the super-resolution computations 402 may include analyzing the influence of motion blur. Such super-resolution computations may analyze the influence of motion blur of multiple images (e.g., the multiple frames 306) using a “volume of solutions” computational approach that addresses uncertainties in pixel measurements due to quantization errors.

A third example of the super-resolution computations 402 may include computations that use a frame-recurrent approach. Such an approach may use, iteratively, a previous low-resolution frame, a previously computed high-resolution image, and a current low-resolution frame to create a current super-resolution image (e.g., the previous low-resolution frame and the current low-resolution frame may be frame 308 and frame 310, respectively). The recurrent approach may include flow estimations to estimate a normalized, low-resolution flow map, upscaling the low-resolution flow map with a scaling factor to produce a high-resolution flow map, using the high-resolution flow map to warp a previous high-resolution image, mapping the warped, previous high-resolution image to a low-resolution space, and concatenating mapping of the low-resolution space to the current super-resolution image.

The super-resolution computations 402 of FIG. 4 may also use algorithms and techniques that are other or additional to those described in the previous examples. Such algorithms and techniques may include machine-learned algorithms and techniques. Regardless, and in accordance with the present disclosure, introducing movement to the one or more components of the camera system 112 are applicable to the other algorithms and techniques.

Example Method

Example method 500 is described with reference to FIG. 5 in accordance with one or more aspects associated with optical image stabilization movement to create a super-resolution image of a scene. Generally, any of the components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the example methods may be described in the general context of executable instructions stored on computer-readable storage memory that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like. Alternatively or in addition, any of the functionality described herein can be performed, at least in part, by one or more hardware logic components, such as, and without limitation, Field-programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), System-on-a-Chip systems (SoCs), or Complex Programmable Logic Devices (CPLDs).

FIG. 5 illustrates example aspects of a method 500 used as part of creating a super-resolution image of a scene. The method 500 is described in the form of a set of blocks 502-508 that specify operations that can be performed. However, operations are not necessarily limited to the order shown in FIG. 5 or described herein, for the operations may be implemented in alternative orders, in fully or partially overlapping manners, or in iterative fashions. Furthermore, although the operations represented by the method 500 will be described in the context of being performed by the user device 102 of FIG. 1 using elements of FIGS. 2-4 , the operations (or portions of the operations) may be performed by one or more other devices having computational capabilities, such as a server or a cloud-computing device including instructions (or portions of instructions) of the super-resolution manager 122.

At block 502, the user device 102 (e.g., processor 116 executing the code of the OIS drive manager 120) introduces movement to one or more components of a camera system 112 (e.g., the OIS system 114 introduces the movement to the camera system 112). In some instances, the user device 102 may introduce the movement in response to entering a viewfinder mode, while in other instances the user device 102 may introduce the movement in response to receiving a capture command Introducing the movement may include introducing an in-plane movement or introducing an out-of-plane movement to the one or more components of the camera system 112.

At block 504, the user device 102 captures respective and multiple frames 306 of an image of a scene that, as a result of the introduced movement to the one or more components of the camera system 112, have respective, sub-pixel offsets of the image of the scene 306 across the multiple frames.

At block 506, the user device 102 (e.g., the processor 116 executing the instructions of the super-resolution manager 122) performs super-resolution computations 402 based on the respective, sub-pixel offsets of the image of the scene across the multiple frames. Examples of super-resolution computations 402 include (i) computing Gaussian radial basis function kernels and computing a robustness model, (ii) analyzing the influence of motion blur across the multiple frames, and (iii) using a frame-recurrent approach that uses, from the multiple frames, a previous low-resolution frame and a current low-resolution frame to create a current super-resolution image.

At block 508, and based on the super-resolution computations 402, the user device 102 (e.g., the processor 116 executing the instructions of the super-resolution manager 122) creates the super-resolution image 106 of the scene.

The example method 500 may also include altering the movement based on a coverage score that is computed through a sampling of the multiple frames of the image of the scene.

Although the present disclosure describes systems and techniques directed to optical image stabilization movement to create a super-resolution image of a scene, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example ways in which use of optical image stabilization movement to create a super-resolution image of a scene can be implemented.

Further to the descriptions above, a user may be provided with controls allowing the user to make an election as to both if and when systems, programs or features described herein may enable collection of user information (e.g., images captured by a user, super-resolution images computed by a system, information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.

In the following, several examples are described:

Example 1: A method to create a super-resolution image of a scene, the method performed by a user device and comprising: introducing, through an optical image stabilization system, movement to one or more components of a camera system of the user device; capturing respective and multiple frames of the image of the scene, the respective and multiple frames of the image of the scene having respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system; performing, based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations; and creating, based on the super-resolution computations, the super-resolution image of the scene.

Example 2. The method as recited by example 1, wherein introducing the movement to the one or more components of the camera system is in response to entering a viewfinder mode.

Example 3: The method as recited by example 1, wherein introducing the movement to the one or more components of the camera system is in response to receiving a capture command.

Example 4: The method as recited by any of examples 1-3, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an in-plane movement to the one or more components of the camera system, wherein the in-plane movement is a movement contained in a plane defined by two axes.

Example 5: The method as recited by any of examples 1-4, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an out-of-plane movement to the one or more components of the camera system, wherein the out-of-plane movement is a movement outside a plane defined by two axes.

Example 6: The method as recited by any of examples 1-5, wherein performing the super-resolution computations includes: computing Gaussian radial basis function kernels; and computing a robustness model.

Example 7: The method as recited by any of examples 1-6, wherein performing the super-resolution computations includes analyzing the influence of motion blur across the multiple frames.

Example 8: The method as recited by any of examples 1-7, wherein performing the super-resolution uses a frame-recurrent approach that uses, from the multiple frames, a previous low-resolution frame and a current low-resolution frame to create a current super-resolution image.

Example 9: The method as recited by any of examples 1-8, wherein additional or supplemental movement is introduced to the one or more components of the camera system based on a coverage score that is computed through a sampling of the multiple frames of the image of the scene.

Example 10: A user device comprising: a camera system; an optical image stabilization system; one or more processors; a display; and a computer-readable storage media storing instructions of an optical image stabilization system drive manager application and a super-resolution manager application that, when executed by the one or more processors, perform complementary functions that direct the user device to: receive, by the one or more processors, a command that directs the user device to: capture an image of a scene; introduce, based on the received command and through the optical image stabilization system, movement to one or more components of the camera system during the capture of the image of the scene, wherein the introduced movement results in the capture of respective and multiple frames of the image of the scene that have respective, sub-pixel offsets of the image across the multiple frames; perform, by the one or more processors and based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations; create, by the one or more processors based on the super-resolution computations, a super-resolution image of the scene; and render, by the display, the super-resolution image of the scene.

Example 11: The user device as recited by example 10, wherein the user device further comprises one or more motion sensors that detect a static motion condition.

Example 12. The user device as recited by example 11, wherein the detection of the static motion condition causes the user device to introduce, through the optical image stabilization system and to one or more components of the camera system, an unsynchronized movement.

Example 13: The user device as recited by example 10, wherein the user device further comprises one or more motion sensors that detect a dynamic motion condition.

Example 14. The user device as recited by example 13, wherein the detection of the dynamic motion condition causes the user device to introduce, through the optical image stabilization system and to one or more components of the camera system, a synchronized movement.

Example 15: A system providing a means for performing the method as recited by any of examples 1-9.

Example 16: A user device configured to perform the method as recited by any of examples 1-9.

Example 17: A computer-readable storage medium including instructions that, when executed, configure a processor to perform the method as recited by any of examples 1-9. 

1-15. (canceled)
 16. A method to create a super-resolution image of a scene, the method performed by a user device and comprising: detecting that the user device has entered a viewfinder mode; introducing, based on detecting that the user device has entered the viewfinder mode and through an optical image stabilization system, movement to one or more components of a camera system; capturing respective and multiple frames of an image of the scene, the respective and multiple frames of the image of the scene having respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system; performing, based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations; and creating, based on the super-resolution computations, the super-resolution image of the scene.
 17. The method as recited by claim 16, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an in-plane movement to the one or more components of the camera system, wherein the in-plane movement is a movement contained in a plane defined by two axes.
 18. The method as recited by claim 16, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an out-of-plane movement to the one or more components of the camera system, wherein the out-of-plane movement is a movement outside a plane defined by two axes.
 19. The method as recited by claim 16, wherein performing the super-resolution computations includes computing Gaussian radial basis function kernels and computing a robustness model.
 20. The method of claim 16, wherein performing the super-resolution computations includes analyzing the influence of motion blur across the multiple frames.
 21. The method of claim 16, wherein performing the super-resolution computations uses a frame-recurrent approach that uses, from the multiple frames, a previous low-resolution frame and a current low-resolution frame to create a current super-resolution image.
 22. The method of claim 16, wherein additional or supplemental movement is introduced to the one or more components of the camera system based on a coverage score that is computed through a sampling of the multiple frames of the image of the scene.
 23. The method as recited by claim 16, further comprising detecting a motion condition, wherein introducing the movement to one or more components of the camera system is further based on the motion condition.
 24. The method as recited by claim 23, wherein the motion condition is a static motion condition, the method further comprising introducing, through the optical image stabilization system and to one or more components of the camera system, an unsynchronized movement.
 25. The method as recited by claim 23, wherein the motion condition is a dynamic motion condition, the method further comprising introducing, through the optical image stabilization system and to one or more components of the camera system, a synchronized movement.
 26. The method as recited by claim 16, wherein performing the super-resolution computations or creating the super-resolution image of the scene is performed at a remote server.
 27. The method as recited by claim 16, wherein introducing the movement to one or more components of the camera system is further based on a coverage score of at least one frame of an image of the scene.
 28. A user device comprising: one or more processors; and a non-transitory computer-readable storage media storing instructions, that when executed by the one or more processors, perform functions comprising: detecting that the user device has entered a viewfinder mode; introducing, based on detecting that the user device has entered the viewfinder mode and through an optical image stabilization system, movement to one or more components of a camera system; capturing respective and multiple frames of an image of the scene, the respective and multiple frames of the image of the scene having respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system; performing, based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations; and creating, based on the super-resolution computations, a super-resolution image of a scene.
 29. The user device of claim 28, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an in-plane movement to the one or more components of the camera system, wherein the in-plane movement is a movement contained in a plane defined by two axes.
 30. The user device of claim 28, wherein introducing the movement to the one or more components of the camera system of the user device includes introducing an out-of-plane movement to the one or more components of the camera system, wherein the out-of-plane movement is a movement outside a plane defined by two axes.
 31. The user device of claim 28, wherein performing the super-resolution computations includes computing Gaussian radial basis function kernels and computing a robustness model.
 32. The user device of claim 28, wherein performing the super-resolution computations includes analyzing the influence of motion blur across the multiple frames.
 33. The user device of claim 28, wherein performing the super-resolution computations uses a frame-recurrent approach that uses, from the multiple frames, a previous low-resolution frame and a current low-resolution frame to create a current super-resolution image.
 34. The user device of claim 28, wherein additional or supplemental movement is introduced to the one or more components of the camera system based on a coverage score that is computed through a sampling of the multiple frames of the image of the scene.
 35. A non-transitory computer-readable storage media storing instructions, that when executed by one or more processors, perform functions comprising: detecting that a user device has entered a viewfinder mode; introducing, based on detecting that the user device has entered the viewfinder mode and through an optical image stabilization system, movement to one or more components of a camera system; capturing respective and multiple frames of an image of the scene, the respective and multiple frames of the image of the scene having respective, sub-pixel offsets of the image of the scene across the multiple frames as a result of the introduced movement to the one or more components of the camera system; performing, based on the respective, sub-pixel offsets of the image of the scene across the multiple frames, super-resolution computations; and creating, based on the super-resolution computations, a super-resolution image of a scene. 